package br.unisul.redeNeural;

/**
 * Classe para inicalização de pesos e vies.<br>
 * Os valores podem ser randomicos ou zero.
 * @author Joelson Fernandes
 *
 */
public class DefaultInicializacao implements InicialiazarValor, java.io.Serializable{

	/**
	 * 
	 */
	private static final long serialVersionUID = -7823229839534989424L;

	/**
	 * Inicializar os valores randomicamente
	 */
	public static final int RADOM = 1;

	/**
	 * Inicializar os valores com 0
	 */
	public static final int ZERO = 0;

	/**
	 * Modo que o valor vai ser inicializado
	 */
	private int modo;


	/**
	 * Constroi um modo de inicialização de valores para {@link Vies} e para {@link Peso}
	 * @param modo que o valor do {@link Vies} e do {@link Peso} vai ser inicializao
	 */
	public DefaultInicializacao(int modo) {
		super();
		this.modo = modo;
	}

	
	public void inicializarPeso(Peso peso) {
		if(peso != null){
			double valor = 0;
			if(modo == RADOM){
				valor = Math.random();
			}
			peso.setValor(valor);
		}

	}

	public void inicializarVies(Vies vies) {
		if(vies != null){
			double valor = 0;
			if(modo == RADOM){
				valor = Math.random();
			}
			vies.setValor(valor);
		}
	}

}
